package com.cloud.pole.user.model.entity;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.validator.constraints.NotEmpty;

import lombok.Data;

/**
 * @author 
 */
@Table(name="base_user")
@Data
public class BaseUser implements Serializable {
	public static final int CHECK_STATUS_BACK = -1;
	public static final int CHECK_STATUS_DEFAULT = 0;
	public static final int CHECK_STATUS_NEED_CHECK = 1;
	public static final int CHECK_STATUS_PASS = 2;
		
	//用户注册来源(后台:bg app:app qq:qq 微信:weixin web:web)
	public static final String USER_ORIGIN_TAG_BG     = "bg";
	public static final String USER_ORIGIN_TAG_APP    = "app";
	public static final String USER_ORIGIN_TAG_QQ     = "qq";
	public static final String USER_ORIGIN_TAG_WEIXIN = "weixin";
	public static final String USER_ORIGIN_TAG_WEB    = "web";
	public static final String USER_ORIGIN_TAG_ELSE   = "else";
	
	/**
	 * 客户端类型(0:未知 1：android 2：ios)
	 */
	public static final int CLIENT_TYPE_DEFAULT   = 0;
	public static final int CLIENT_TYPE_ANDROID   = 1;
	public static final int CLIENT_TYPE_IOS       = 2;

	
	public static final int USER_STATUS_INVALID = 0;
	/**
	 * 支付禁用（0：否 1：是）
	 */
	public static final int IS_PAY_DISABLE_YES = 1;
	public static final int IS_PAY_DISABLE_NO  = 0;
	
	public static final int USER_STATUS_EFFECTIVE = 1;
	
	/**
	 * 用户类型（1：普通会员 10：高级会员 20：店铺商家）
	 */
	public static final int USER_TYPE_MEMBER   = 1;
	public static final int USER_TYPE_SENIOR   = 10;
	public static final int USER_TYPE_MERCHANT = 20;
	
    /**
     * 用户id
     */
    @Id
    private Long userId;

    /**
     * 用户名
     */
    @NotEmpty
    private String userName;

    /**
     * 登录密码
     */
    private String passWord;

    /**
     * 真实姓名
     */
    private String realName;

    /**
     * 性别(2：女 1：男 0:未知)
     */
    private Integer sex;

    /**
     * 邮箱
     */
    private String email;

    /**
     * qq号
     */
    private String qq;

    /**
     * 微信号
     */
    private String weixin;

    /**
     * 手机
     */
    private String mobile;

    /**
     * 手机归宿地
     */
    private String mobileArea;

    /**
     * 电话
     */
    private String phone;

    /**
     * 身份证号码
     */
    private String idcardNo;

    /**
     * 昵称
     */
    private String nickName;

    /**
     * 头像
     */
    private String iconPath;

    /**
     * 生日
     */
    private String birthday;

    /**
     * 用户注册来源(后台:bg app:app qq:qq 微信:weixin web:web)
     */
    private String originTag;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 有效标志(0无效 1有效)
     */
    private Integer userStatus;

    /**
     * 最近登陆时间
     */
    private Date loginTime;

    /**
     * 支付密码
     */
    private String payPwd;

    /**
     * 认证状态(-1：认证不通过  0：未认证 1：待审核 2：认证通过)
     */
    private Integer authentStatus;

    /**
     * 审核人人id
     */
    private String checkUserId;

    /**
     * 审核时间
     */
    private Date checkTime;

    /**
     * 审核说明
     */
    private String checkNote;

    /**
     * 身份证正面照
     */
    private String idcardFace;

    /**
     * 身份证背面照
     */
    private String idcardBack;

    /**
     * 手持省份证照
     */
    private String handIdcard;

    /**
     * 国家id
     */
    private String countryId;

    /**
     * 国家
     */
    private String countryName;

    /**
     * 省id
     */
    private String provinceId;

    /**
     * 省
     */
    private String provinceName;

    /**
     * 市id
     */
    private String cityId;

    /**
     * 市
     */
    private String cityName;

    /**
     * 区县id
     */
    private String districtId;

    /**
     * 区县
     */
    private String districtName;

    /**
     * 详细地址
     */
    private String address;

    /**
     * 二维码
     */
    private String qrcode;

    /**
     * 支付锁定状态(0：否 1：是)
     */
    private Integer payLockStatus;


    /**
     * 登陆锁定状态（0：否 1：是）
     */
    private Integer loginLockStatus;

    /**
     * 平台用户公钥
     */
    private String platPublicKey;

    /**
     * 平台用户私钥
     */
    private String platPrivateKey;

    /**
     * 登录禁用（0：否 1：是）
     */
    private Integer isLoginDisable;

    /**
     * 支付禁用（0：否 1：是）
     */
    private Integer isPayDisable;

    /**
     * token
     */
    private String token;

    /**
     * 融云token
     */
    private String rongToken;
    
    
    /**
     * 用户类型（1：普通会员 10：高级会员 20：店铺商家）
     */
    private Integer userType;

    /**
     * 推荐人用户id
     */
    private Long recommendUserId;
    
    private Long channelNetId;
    
    private Long channelPersonId;
    
    private String marketCode;
    
    private Integer channelType;
    
    private Integer channelClass;

    private static final long serialVersionUID = 1L;
}